<?php
namespace app\api\model;

use think\Model;
use think\Db;

class Cart extends Model
{
    /**
     * 查询用户购物车内的商品
     * @param $userid 用户id
     */
    public function index($userid)
    {
        error_reporting(0);
        $cart = new Cart();
        //查询出该用户购物车内的信息
        $cartinfo = $cart
            ->field('agencyid,issueid,id,num')
            ->where('userid',$userid)
            ->order('id desc')
            ->group('agencyid')
            ->select();

        //判断该用户的购物车内是否有信息
        if(count($cartinfo)!=0){
            //将查出的数据  转换成数组
            foreach($cartinfo as $dataa)
            {
                $cartinfos[] = $dataa->toArray();
            }
            for($a=0;$a<count($cartinfos);$a++)
            {
                //得到店铺id
                $agencyid = $cartinfos[$a]['agencyid'];
                //根据店铺id查询出该店铺的名称
                $agencyname = Db::name('agency')->field('shop')->where('id',$agencyid)->select();
                //将查出的店铺名称赋值给 $agencyname
                $agencyname = $agencyname['0']['shop'];

                //得到商品id，并查出商品的先关信息
                $issueid = $cartinfos[$a]['issueid'];
                $issue = Db::name('issue')->where('id',$issueid)->select();
                $issue['num']                 =  $cartinfos[$a]['num'];

                $info[$a]['id']                 = $cartinfos[$a]['id'];
                $info[$a]['agencyiid']    =  $agencyid;
                $info[$a]['shopname']   = $agencyname;
                $info[$a]['data']             = $issue;
            }
            return $info;
        }
        else{
            return 0;
        }
    }

    /**
     * 往购物车内添加商品
     * @param $userid  用户id
     * @param $issueid 商品id
     * @param $number 商品数量
     * @param $agencyid 店铺id
     */
    public function add($info)
    {
        error_reporting(0);
        $cart = new Cart($info);
        // post数组中只有name和email字段会写入
        $data = $cart->allowField(true)->save();
        if($data == 1)
        {
            return 1;
        }
        else
        {
            return 0;
        }

    }

    /**
     * 删除购物车内的商品
     * @param $id  购物车id
     * @param $userid 用户id
     */
    public function del($id,$userid)
    {
        error_reporting(0);
        $idarr = Db::name('cart')->where('id',$id)->field('userid')->select();
        $useridarr = $idarr[0]['userid'];
        if($useridarr == $userid)
        {
            $info = Db::name('cart')->where(['id'=>$id,'userid'=>$userid])->delete();
            if($info == 1)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
        else
        {
            return 0;
        }
    }

    /**
     * @param $id 购物车id
     * @param $userid 用户id
     * @param $num 修改后的商品数量
     */
    public function mod($id,$userid,$num)
    {
        error_reporting(0);
        $idarr = Db::name('cart')->where('id',$id)->field('userid')->select();
        $useridarr = $idarr[0]['userid'];
        if($useridarr == $userid)
        {
            $info = Db::name('cart')->where(['id'=>$id,'userid'=>$userid])->update(['num'=>$num]);
            if($info == 1)
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
        else
        {
            return 0;
        }
    }
}